package com.zhao.biz.tag.perform

import org.apache.commons.lang3.StringUtils
import org.apache.spark.sql.Row

/**
 * Description: 广告位类型和渠道<br/>
 * Copyright (c) ，2021 ， 赵 <br/>
 * A wet person does not fear the rain. <br/>
 * Date： 2021/1/14 9:55
 * 广告位类型(标签格式: LC03->1 或者 LC16->1) xx为数字,小于 10 补 0,广告位类型名称,LN 插屏->1
 * 渠道(标签格式: CNxxxx->1) xxxx 为渠道ID(adplatformproviderid)
 *
 * 对当条日志信息分析完毕后,结果形如:
 * List(("LC03",1),("LN 插屏",1),("CN0011",1)) 或者是:
 * List(("LC16",1),("LN 插屏",1),("CN0011",1))
 *
 * @author 柒柒
 * @version : 1.0
 */

object TagsAdAndPlatform extends IMakeTags {
  /**
   * 数据标签接口
   *
   * @param args
   * @return
   */
  override def makeTags(args: Any*): List[(String, Int)] = {

    //创建一个集合用于返回
    var list: List[(String, Int)] = List[(String, Int)]()

    //参数解析
    val row: Row = args(0).asInstanceOf[Row]

    //获取广告类型
    val adType: Int = row.getAs[Int]("adspacetype")
    adType match {
      case v if v > 9 => list :+= ("LC" + v,1)
      case v if v > 0&& v <= 9 => list :+= ("LC0" + v,1)
    }

    //获取广告类型名称
    val adName: String = row.getAs[String]("adspacetypename")
    if (StringUtils.isNoneBlank(adName)){
      list :+= ("LN" +adName,1)
    }

    //渠道标签
    val channel = row.getAs[Int]("adplatformproviderid")
    list :+= ("CN" + channel,1)

    list
  }
}



















